package com.zhoug.map3.location;

/**
 * 定位服务接口
 *
 * @Author HK-LJJ
 * @Date 2019/12/27
 * @Description
 */
public interface LocationService {
    /**
     * 使用google Geocoder
     */
    int GEOCODER_TYPE_GOOGLE=1;
    /**
     * 使用天地图 Geocoder
     */
    int GEOCODER_TYPE_TIANDITU=2;

    /**
     * 启动定位sdk,启动后会默认立即发起定位请求
     */
    void start();

    /**
     * 重启定位SDK,
     * 后台常驻运行的APP可以尝试在回到前台的情况下重启定位SDK,防止因长时间后台运行被系统回收定位权限造成定位失败
     */
//     void restart();

    /**
     * 停止定位sdk
     */
    void stop();

    /**
     * 使用自动通过经纬度获取地址信息
     *
     * @param addressEnable
     */
    void setAddressEnable(boolean addressEnable);

    /**'
     * 设置使用哪个平台的API获取地址信息
     * @param type 默认值{@link #GEOCODER_TYPE_TIANDITU}
     */
    void setGeocoderType(int type);




    /**
     * 获取最新的定位成功的位置:最后一次成功定位的位置或缓存的位置
     *
     * @return
     */
    ZLocation getLastLocation();

    /**
     * 移除定位监听
     *
     * @param onLocationListener {@link OnLocationListener}
     */
    void removeOnLocationListener(OnLocationListener onLocationListener);

    /**
     * 注册定位监听
     *
     * @param onLocationListener {@link OnLocationListener}
     */
    void addOnLocationListener(OnLocationListener onLocationListener);

    /**
     * 销毁
     */
    void destroy();


}
